今天要來教大家網路開發一定要學習的框架:MVC框架。
就學習來說一定要先說明什麼是MVC,當大家有了這個概念再去實作Spring boot會更好,但我個人是一個比較喜歡實作大於理論的人,我比較喜歡先去實際做出來之後再去理解這個內容,而這樣我也會更好的吸收,所以建議大家在學習完Spring boot完整的Controller->Service->Repository之後再來回過頭來複習這裡的介紹,相信一定會有更多的體悟。
MVC 是 Model-View-Controller 的縮寫,是一種軟體架構模式。 MVC 把一個應用程序分成三個主要部分:模型(Model)、視圖(View)和控制器 (Controller)。
MVC 模式是一種軟體架構模式,會將系統區分為模型 (Model)、視圖 (View)和控制器 (Controller),設計邏輯在於將「邏輯處理」與「資料呈現」的部分做區分,明確區分各元件的功能,這樣做的好處在於擴充能夠更簡單、提高可用性、在團隊也能各自做開發,不會互相影響。
圖片來源:https://www.explainthis.io/zh-hant/swe/mvc
MVC 互動的模式如上圖所示,而各個組件分別代表:
最主要是負責和資料庫做溝通,我們先前已經介紹過MySQL,也就是資料庫的一種,當我們要讀取資料庫的時候需要指令操作,例如查詢計帳金額、或者是查詢記帳的時間,都需要向資料庫取得或者存放資料,而對資料庫做的事情都是屬於Model的範疇,他本身不依賴於其他兩個功能,也就是符合MVC的概念:讓功能各自獨立,不互相依賴。
負責管理資料的顯示,這個部分就是網頁資料庫顯示的畫面,在我們的這次要實作的專案中,View的部分是屬於前端的工作,也就是接下來我們要教的React的內容。
負責接受所有資訊的地方,就網站來說,當我們這些使用者想要開啟網頁的時候,第一件事不是直接打開網頁,其實是先告訴伺服器我想要看這個網頁,接收這個請求的就是Controlller的功能,當Controller看到之後,就會根據我們的需求,去拿取資料庫的資料,再拿View視圖的資訊整合在一起。Controller就像是大廚,我們點餐之後,大廚會根據我們的餐點去做備料、炒菜,最後把菜給端上來,而我們拿到的就是最後可口的菜餚。
MVC並不是一個程式語言,而更像是一個概念,提醒我們要從這樣的方式去開發,因為MVC的特性,我們可以把這些功能獨立出來,變成可以讓更多人參與開發,而當有任何問題的時候我們就可以從問題出發的地方更快速地找出問題,並且解決。
在後端開發的過程中,其實沒有所謂的View,只有Controller跟Model,整個MVC的框架指的是網站開發的框架,也就是說,View這個部分其實指的是React的部分,後面的Controller跟Model才是Spring boot的部分。這點我在一開始學習的時候常常會搞錯,希望能藉由這次的教學幫助大家釐清這個觀點。
所以,今天的內容雖然沒有實作任何的東西,卻是我們開發的重要原則,當我們依照MVC開發我們的程式,才能讓程式變得更好維護跟管理。
那麼明天開始,就讓我們正式進入前後端整合,用Spring boot跟React開發我們的記帳工具吧!